﻿using System;
using System.Collections;
using System.Linq;
using System.Text;
using CRUD.InterfaceDAO;
using GestionadorBaseDatos;

namespace CapaNegocios
{
    /// <summary>
    /// interfaz que define los metodos de comportamiento de una forma de pago
    /// </summary>
    public interface IGestionFormaPago
    {
        /// <summary>
        /// Metodo que te permite insertar una nueva forma de pago
        /// </summary>
        /// <param name="crearForma">Recibe como parametro un objeto de tipo FormaPago</param>
        void Insert(FormaPago crearForma);
        
        /// <summary>
        /// Metodo que te permite obtener todas las formas de pago
        /// </summary>
        /// <returns>Retorna una lista de objetos</returns>
        IList GetAll();
        
        /// <summary>
        /// Metodo que permite obtener un pago dado su id
        /// </summary>
        /// <param name="Id">Recibe como parametro un objeto de tipo FormaPago que tiene el atributo "id"
        /// no nulo</param>
        /// <returns>Retorna un objeto de tipo FormaPago</returns>
        FormaPago GetById(FormaPago Id);

        /// <summary>
        /// Metodo que permote obtener una forma de pago dado su nombre
        /// </summary>
        /// <param name="forma">Recibe como parametro un objeto de tipo FormaPago que tiene el atributo 
        /// "nombre" no nulo</param>
        /// <returns>Retorna un objeto de tipo FormaPago</returns>
        FormaPago GetByNombre(FormaPago forma);

        /// <summary>
        /// Metodo que permite obtener una forma de pago dado su nombre
        /// </summary>
        /// <param name="nombre">Recibe como parametro un tipo de datos string</param>
        /// <returns>Retorna un objeto de tipo FormaPago</returns>
        FormaPago GetByNombre(string nombre);
        
    }
}
